package bingfa

import (
	"fmt"
	"time"
)

/*
开启一个WriteData协程像intChan中写入50个数据
开启一个readData协程，从intChan中读取Writedaat写入的数据
注意WriteData和ReadData操作的是同一个管道
主线程需要等待WriteData和readData协程都完成工作才能退出管道
 */
var chanInt =make(chan int,50)
var chanMain =make(chan int,0)
func addNum(){

	for i:=0;i<50;i++{
		chanInt<-i
		time.Sleep(time.Second)
	}
	close(chanInt)
}
func getNum(){
	fmt.Println("阻塞")
	for value:=range chanInt{
		fmt.Println(value)
	}
	/*for  {//用这种方法可以在输入进去的管道中提取出来数字
		num,exist:=<-chanInt
		if !exist{
			break
		}
		fmt.Println(num)
	}*/
	chanMain<-0
}
func Test9(){
	go addNum()
	go getNum()
	<-chanMain
	close(chanMain)
}